添加触屏驱动
1. 添加对应触摸屏的驱动文件¶
触控驱动请触控IC厂家提供,触控驱动属于input子系统,驱动运行加载成功后,会在/dev/input/eventX(一般如无其他input子系统存在,会生成的是event0)
-
将IC厂家提供的linux驱动添加到
kernel/drivers/input/touchscreen/目录下 -
如下图,在
kernel/drivers/input/touchscreen/Makefile中添加驱动文件链接,并用CONFIG_TOUCHSCREEN_GOODIX控制
-
如下图,在
kernel/drivers/input/touchscreen/Kconfig中添加CONFIG_TOUCHSCREEN_GOODIX,以便在kernel config中增加make menuconfig 配置
2. DTS添加触摸屏设备树节点¶
针对IC厂家提供的驱动,以及硬件连接原理图,添加设备树节点,以供驱动获取使用。
常见的设备树需要配置的有:
-
根据驱动使用的name配置设备树节点的compatible name
-
触控IC的i2c slave addr
-
触控IC跟主芯片连接的RST/Interrupts pin脚
3. 操作示例¶
下面使用公版的Goodix驱动为例进行说明。
打开kernel/arch/arm/boot/dts/infinity2m-ssc011a-s01a-display.dtsi (实际使用过程中请添加到项目使用到的dtsi中)
-
根据硬件连接,Goodix设备树节点是选择挂在了i2c-group = 1这里,使用的是i2c mode1
-
创建goodix_gt911@5D节点,节点compatible = “goodix,gt911” (compatible name需要匹配驱动)
-
根据触控IC厂家提供的I2C slave addr,配置好reg属性,这里goodix的I2C slave addr地址为0x5D (需要IC厂家确认)
-
设备树节点根据硬件连接,配置好goodix_rst/goodix_int 两个属性对应的pin脚(属性名字需要匹配驱动)
注意:触控设备最好不要有重复,如项目上新增了其他触控设备,请在config中关闭公版Default的Goodix驱动